package visao;

import java.awt.Color;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;

import modelo.Cliente;
import modelo.Funcionario;
import controle.ControleCliente;
import controle.ControleFuncionario;
import de.javasoft.plaf.synthetica.SyntheticaBlackEyeLookAndFeel;
import de.javasoft.plaf.synthetica.SyntheticaSimple2DLookAndFeel;

/**
 * autor fernando_miara
 * 
 * classe para login no sistema tanto funcionario quanto cliente
 * */

public class Login extends JFrame {

	private JPanel contentPane;
	private JTextField txtEmail;
	// private JTextField txtSenha;
	private Menu menuTela = new Menu();
	private JPasswordField txtSenha;

	/***
	 * Launch the application.
	 * 
	 * metodo abre tela
	 */

	protected void abreTela(int status) {

	}

	/**
	 * Metodo Main da classe
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					UIManager
							.setLookAndFeel(new SyntheticaSimple2DLookAndFeel());
					Login frame = new Login();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/***
	 * Create the frame.
	 */
	public Login() {
		/**
		 * tela de login
		 */
		setTitle("Login");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBackground(Color.GRAY);
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		/**
		 * Campo onde ser digitado o e-mail
		 */
		txtEmail = new JTextField();
		txtEmail.setBounds(83, 33, 282, 20);
		contentPane.add(txtEmail);
		txtEmail.setColumns(10);

		JLabel lblEmail = new JLabel("EMAIL");
		lblEmail.setBounds(21, 36, 46, 14);
		contentPane.add(lblEmail);

		JLabel lblPassword = new JLabel("Password");
		lblPassword.setBounds(21, 104, 63, 14);
		contentPane.add(lblPassword);

		// txtSenha = new JTextField();
		// txtCpf = new JFormattedTextField(new MaskFormatter("###.###.###-##"))
		/**
		 * Campo onde sera digitado a senha
		 */
		txtSenha = new JPasswordField();
		txtSenha.setBounds(83, 101, 282, 20);
		contentPane.add(txtSenha);

		/**
		 * Metodo para login onde fara um busca na tabela cliente e funcionario
		 * no banco de dados, pois nunca vai existir um cliente que 
		 * funcionario ou funcionario que  cliente, caso os dados digitado
		 * sejam verdadeiros ento o cliente ou funcionario vai ser direcionado
		 * para tela de meu
		 */

		JButton btnLogar = new JButton("Logar");
		btnLogar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				Funcionario funcionario = new Funcionario();
				Cliente cliente = new Cliente();
				cliente.setEmail(txtEmail.getText());
				funcionario.setEmail(txtEmail.getText());
				ControleCliente controleCliente = new ControleCliente();
				ControleFuncionario controleFuncionario = new ControleFuncionario();
				try {

					if (!controleFuncionario.buscar(funcionario).isEmpty()) {
						funcionario = controleFuncionario.buscar(funcionario)
								.get(0);
						if (funcionario.getSenha().equals(txtSenha.getText())) {
							menuTela.abreTela(1, funcionario);
							menuTela.setVisible(true);
							dispose();
						} else {
							JOptionPane.showMessageDialog(null, "senha Errada");

						}
					} else if (!controleCliente.buscar(cliente).isEmpty()) {
						cliente = controleCliente.buscar(cliente).get(0);
						if (cliente.getSenha().equals(txtSenha.getText())) {
							menuTela.abreTela(2, cliente);
							menuTela.setVisible(true);
							dispose();
						} else {
							JOptionPane.showMessageDialog(null, "senha Errada");

						}
					}

					else {
						JOptionPane.showMessageDialog(null,
								"usuario nao existe");
					}
				} catch (Exception e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();

				}
			}
		});
		btnLogar.setBackground(Color.WHITE);
		btnLogar.setBounds(170, 182, 91, 23);
		contentPane.add(btnLogar);
	}
}
